/*
 * Copyright (c) 2022  by Junzhao
 * THIS FILE IS PART OF JAVASE Song Huongkang PROJECT
 * All Rights Reserved.
 */

import java.util.Scanner;

class arrtests {
    public static void main(String[]args){
        int[] arr1=Random();
        printArr(arr1);
        maxnum_arr(arr1);
        evenSum(arr1);
    }
    //工具，打印数组
    public static void printArr(int[] arr){
        for (int a:arr){
            System.out.print(a+" ");
        }
        System.out.println();
    }

    //方法，将一个数组作为返回值
    //1.新建一个任意个的降序常数组
    public static int[] arr(){
        Scanner scanner=new Scanner(System.in);
        int x =scanner.nextInt();

        int[] ARR= new int[x];

        for (int i=x;i>0;i--){
            ARR[x-i]=i;
        }
        return ARR;
    }

    //2.新建一个1000内随机数的数组
    public static int[] Random(){
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入新建一个1000内随机数的数组的元素个数：");
        int x =scanner.nextInt();

        int[] ARR= new int[x];

        for (int i=x;i>0;i--){
            ARR[x-i] = (int) (Math.random()*1000);
        }
        return ARR;
    }

    //3.冒泡排序(升序）
    public static void bubbleSortup(int[] arr){
        for (int i=arr.length;i > 0;i--){
            for (int j= 0;j < i - 1;j++){
                if (arr[j] > arr[j+1]){
                    int temp;

                    //交换两个数的值
                    temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }

    //4.冒泡排序(降序）
    public static void bubbleSortdown(int[] arr){
        for (int i=arr.length;i > 0;i--){
            for (int j= 0;j < i - 1;j++){
                if (arr[j] < arr[j+1]){
                    int temp;

                    //交换两个数的值
                    temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }

    //5.数组累加求和
    public static void summation(int[] arr){
        int temp;
        int a=0;
        for(int i=0;i<= arr.length-1;i++){
            temp = arr[i];
            a+=temp;
        }
        System.out.println("这个数组的和是："+a);
    }

    //6.数组最值
    public static void maxnum_arr(int[] arr){
        int max = arr[0];
        for (int j : arr) {
            if (max < j) {
                max = j;
            }
        }
        System.out.println("这个数组的最大值是："+max);
    }
    public static void evenSum(int[] arr){
        int sum = 0;
        for (int j : arr) {
            if (j % 2 == 0) {
                sum += j;
            }
        }
        System.out.println("这个数组的偶数和为："+sum);
    }

    //汇总一
    public static void a(){
        //生成一个降序常数组并打印
        int[] arrUsed= arr();
        printArr(arrUsed);
        //生成一个n个元素随机数组并打印
        int[] random= Random();
        printArr(random);
        //升序排列并打印
        bubbleSortup(random);
        printArr(random);
        //降序排列并打印
        bubbleSortdown(random);
        printArr(random);
    }

    //计算一个随机数组的各元素和
    public static void b(){
        int[] random=Random();
        printArr(random);
        summation(random);
    }

    //数组中最大值
    public static void c(){
        int[] arr0=Random();
        printArr(arr0);
        maxnum_arr(arr0);
    }

}
